home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / SCIENTIF / 0807.ZIP / ROCKET1.BAS < prev    next >
BASIC Source File  |  1987-09-28  |  4KB  |  175 lines

  1. ' PROGRAM "ROCKET1"
  2.  
  3. ' COPYRIGHT (C) 1982 BY DAVID EAGLE
  4.  
  5. ' PUBLIC DOMAIN FOR IBM-PC ON AUGUST 19, 1986
  6.  
  7. ' IBM-PC  << QUICKBASIC COMPILER VERSION 3.0 >>
  8.  
  9. ' DETERMINES FLIGHT PERFORMANCE OF MODEL ROCKETS
  10.  
  11. ' ALTITUDE AT BURNOUT, METERS
  12. ' VELOCITY AT BURNOUT, METERS PER SECOND
  13. ' COAST TIME AND TOTAL FLIGHT TIME, SECONDS
  14. ' MAXIMUM ALTITUDE, METERS
  15.  
  16. DEFDBL A-Z
  17.  
  18. DEF FNA(X)=(1D0-2.2556913D-5*X)^4.256116D0
  19.  
  20. PI=3.14159265D0
  21. GRAVITY=9.80665D0
  22. RHOSL=1.22557D0
  23.  
  24. CLS
  25. PRINT
  26. PRINT "Program ROCKET1"
  27. PRINT "(C) Copyright 1982 by David Eagle"
  28. PRINT
  29. PRINT "Microsoft QuickBASIC Compiler"
  30. PRINT "(C) Copyright Microsoft Corp. 1982-1987"
  31.  
  32. PRINT
  33. PRINT TAB(10);"< press any key to continue >"
  34. A$=""
  35. WHILE A$=""
  36.   A$=INKEY$
  37. WEND
  38.  
  39. CLS
  40. PRINT
  41. PRINT TAB(32);"Program ROCKET1"
  42. SITE:
  43. PRINT
  44. PRINT
  45. PRINT "Launch site altitude ( meters )"
  46. INPUT ALTSITE
  47. PRINT
  48. PRINT "Launch site temperature ( degrees Fahrenheit )"
  49. INPUT TEMPSITE
  50. ENGINE:
  51. PRINT
  52. PRINT
  53. PRINT "Thrust duration ( seconds )"
  54. INPUT TDURATION
  55. PRINT
  56. PRINT "Total impulse ( newton-seconds )"
  57. INPUT IMPULSE
  58. MASS:
  59. PRINT
  60. PRINT
  61. PRINT "Initial mass ( grams )"
  62. INPUT MASSI
  63. PRINT
  64. PRINT "Propellant mass ( grams )"
  65. INPUT MPROP
  66. PRINT
  67. PRINT
  68. PRINT "Frontal diameter ( millimeters )"
  69. INPUT FD
  70. PRINT
  71. PRINT "Drag coefficient"
  72. INPUT CD
  73.  
  74. ' CONVERT MASS TO KILOGRAMS AND DIAMETER TO SQUARE METERS
  75.  
  76. MASSI=.001D0*MASSI
  77. MPROP=.001D0*MPROP
  78. FD=PI*FD^2/4D6
  79.  
  80. ' COMPENSATE FOR LAUNCH SITE ALTITUDE AND TEMPERATURE
  81.  
  82. RHO=RHOSL*FNA(ALTSITE)/(1D0+(TEMPSITE-59D0)/518.67D0)
  83.  
  84. ' DETERMINE ALTITUDE PERFORMANCE
  85.  
  86. THRUST=IMPULSE/TDURATION
  87. MASS=(MASSI-.5D0*MPROP)
  88. K2=.5D0*RHO*FD*CD
  89. WEIGHT=MASS*GRAVITY
  90.  
  91. B=TDURATION*SQR(K2*(THRUST-WEIGHT))/MASS
  92. C=EXP(B)
  93. D=EXP(-B)
  94. E=.5D0*(C+D)
  95. F=(C-D)/(C+D)
  96.  
  97. ' BURNOUT CONDITIONS
  98.  
  99. ALTBO=(MASS/K2)*LOG(E)
  100. VELBO=F*SQR((THRUST-WEIGHT)/K2)
  101. MASSBO=MASSI-MPROP
  102. WEIGHTBO=MASSBO*GRAVITY
  103.  
  104. ' COAST CONDITIONS
  105.  
  106. TCOAST=SQR(MASSBO/(K2*GRAVITY))*ATN(VELBO*SQR(K2/WEIGHTBO))
  107. ALTCOAST=(MASSBO/(2D0*K2))*LOG(K2*VELBO*VELBO/WEIGHTBO+1D0)
  108.  
  109. ' FLIGHT TIME AND APOGEE ALTITUDE
  110.  
  111. TFLIGHT=TDURATION+TCOAST
  112. ALTMAX=ALTBO+ALTCOAST
  113.  
  114. ' PRINT RESULTS
  115.  
  116. CLS
  117. PRINT
  118. PRINT TAB(32);"Program ROCKET1"
  119. PRINT
  120. PRINT
  121. PRINT TAB(5);"Burnout altitude   ( meters )";
  122. PRINT USING "######.####";TAB(55);ALTBO
  123. PRINT
  124. PRINT TAB(5);"Burnout velocity   ( meters per second )";
  125. PRINT USING "######.####";TAB(55);VELBO
  126. PRINT
  127. PRINT TAB(5);"Burnout mass       ( grams )";
  128. PRINT USING "######.####";TAB(55);1000D0*MASSBO
  129. PRINT
  130. PRINT
  131. PRINT TAB(5);"Coast time         ( seconds )";
  132. PRINT USING "######.####";TAB(55);TCOAST
  133. PRINT
  134. PRINT TAB(5);"Total flight time  ( seconds )";
  135. PRINT USING "######.####";TAB(55);TFLIGHT
  136. PRINT
  137. PRINT
  138. PRINT TAB(5);"Maximum altitude   ( meters )";
  139. PRINT USING "######.####";TAB(55);ALTMAX
  140. PRINT
  141. PRINT
  142. PRINT TAB(5);"Average thrust     ( newtons )";
  143. PRINT USING "######.####";TAB(55);THRUST
  144.  
  145. PRINT
  146. PRINT
  147. PRINT TAB(25);"< press any key to continue >"
  148. A$=""
  149. WHILE A$=""
  150.   A$=INKEY$
  151. WEND
  152.  
  153. ' REQUEST ANOTHER SELECTION
  154.  
  155. CLS
  156. PRINT
  157. PRINT
  158. PRINT "Another selection ( y = yes, n = no )"
  159. INPUT SELECTION$
  160. IF INSTR("nN",SELECTION$) THEN END
  161. PRINT
  162. PRINT "Another launch site ( y = yes, n = no )"
  163. INPUT SELECTION$
  164. IF INSTR("yY",SELECTION$) THEN GOTO SITE
  165. PRINT
  166. PRINT "Another rocket engine ( y = yes, n = no )"
  167. INPUT SELECTION$
  168. IF INSTR("yY",SELECTION$) THEN GOTO ENGINE
  169. PRINT
  170. PRINT "Different mass or drag ( y = yes, n = no )"
  171. INPUT SELECTION$
  172. IF INSTR("yY",SELECTION$) THEN GOTO MASS
  173.  
  174. END
  175.